package com.djx.threadstudy.lock;

import lombok.SneakyThrows;

/**
 * @ClassName LockTest01
 * @Date 2021/7/9 0009 上午 10:19
 * @Author Administrator
 * @Description TODO
 * Version 1.0
 */
public class LockTest01 {

    /**
     * 被synchronized  修饰的方法，锁的对象是方法调用者。因为两个方法的调用者是同一个，所以两个方法用的是同一个锁，先调用的方法先执行。
     * @param args
     */

    public static void main(String[] args) {
        Phone01 phone = new Phone01();
        new Thread(() -> { phone.call(); }, "A").start();
        new Thread(() -> { phone.sendSms(); }, "B").start();
    }
}

class Phone01 {

    public synchronized void sendSms() {
        System.out.println("发短信: "+Thread.currentThread().getName());
    }
    @SneakyThrows
    public synchronized void call() {
        Thread.sleep(3009);
        System.out.println("打电话: "+Thread.currentThread().getName());
    }


}
